package com.jzo2o.common.utils;

import java.nio.charset.StandardCharsets;
import java.util.Base64;

/**
 * Base64工具类，提供字符串的Base64编码和解码功能
 */
public class Base64Utils {

    /**
     * 将字符串进行Base64编码，返回字节数组
     *
     * @param content 待编码的字符串
     * @return 编码后的字节数组；输入为null时返回空字节数组
     */
    public static byte[] encode(String content) {
        if (null == content) {
            return "".getBytes();
        }
        return Base64.getEncoder().encode(content.getBytes(StandardCharsets.UTF_8));
    }

    /**
     * 将字符串进行Base64编码，返回编码后的字符串
     *
     * @param content 待编码的字符串
     * @return 编码后的字符串；输入为null时返回空字符串
     */
    public static String encodeStr(String content) {
        return new String(encode(content), StandardCharsets.UTF_8);
    }

    /**
     * 将Base64编码后的字符串解码为原始字符串
     *
     * @param content 待解码的Base64字符串
     * @return 解码后的原始字符串
     */
    public static String decodeStr(String content) {
        return new String(Base64.getDecoder().decode(content.getBytes(StandardCharsets.UTF_8)));
    }


}
